100 DIM N1(50), CW$(50), DUR(50,8),BB(510) 150 POKE53281,6:POKE53280,11:POKE646,15 160 SP$=" ":PRINTCHR$(142) 200 GOSUB60000 300 GOTO6000 400 FOR L=54272TO54296:POKEL,0:NEXTL 500 S=54272:POKES+5,15:POKES+24,15:POKES+6,40 600 POKES+21,57:POKES+22,100:POKES+23,8 650 PRINT"[147]EACH PRACTICE SESSION LASTS FOR" 660 PRINT"TWO MINUTES." 700 PRINT"SUGGESTED CODE SPEEDS ARE FROM 2 TO 15" 710 PRINT"WORDS PER MINUTE" 800 INPUT"WHAT CODE SPEED DO YOU WISH?";SPEED 801 IFSP<2ORSP>15THENPRINT" PLEASE ENTER A VALUE BETWEEN 2 AND 15.":GOTO800 900 NUMBER=INT(SPEED*10.) 910 IFSPEED>4THEN950 920 SS=4:TS=45:SU=2800:GOTO1000 950 IFSPEED>10THEN980 960 SS=6:TS=65:SU=1000:GOTO1000 980 SS=5:TS=60:SU=1250 1000 GOSUB 3500 1050 POKE53280,6:POKE53281,5:POKE646,0 1100 PRINT"[147]GET READY--CODE PRACTICE BEGINS IN 5 SECONDS" 1105 PRINT:PRINT" [PRESS 'Q' TO EXIT PRACTICE]":PRINT 1200 FOR TT=1TO2000:NEXTTT 1250 GOSUB1400 1260 PRINTCHR$(13);"PRACTICE THIS GROUP AGAIN (Y/N)" 1270 POKE198,0:WAIT198,1:GETAN$:IFANS$="Y"THEN900 1280 IFANS$="N" GOTO300 1290 GOTO 1270 1310 : 1400 : 1450 LI=1:AG=NUMBER:REM IFSV=9ORSV=10THENAG=AG-30 1500 FORIA=1TOAG 1600 IB=BB(IA):IFLI+LEN(CW$(IB))>38THENPRINT:LI=1 1610 PRINTCW$(IB);SP$;:LI=LI+LEN(CW$(IB))+1 1700 FORIC=1TON1(IB) 1750 IFPEEK(198)<>0THENGETX$:IFX$="Q"THENRETURN 1800 FORID=1TO7*DUR(IB,IC)*SS/SPEED 1900 POKES,31:POKES+1,21:POKES+3,8:POKES+2,0:POKES+4,65:NEXT 2000 FORID=1TOTS/SPEED:POKES+4,64:NEXTID 2100 NEXTIC 2200 FORIC=1TOSU/SPEED:NEXTIC 2300 NEXTIA 2350 RETURN 2800 : 2900 FOR I=1TO42 3000 READN1(I),CW$(I) 3100 FOR J=1TON1(I) 3200 READ DUR(I,J) 3300 NEXTJ:NEXTI 3400 RETURN 3500 : 3600 FORI=1TONUMBER 3700 BB(I)=INT(RND(0)*NR)+SW 3800 NEXTI 3900 RETURN 4100 DATA 1,E,1,2,I,1,1,1,T,3,2,M,3,3,2,A,1,3,2,N,3,1 4200 DATA 3,D,3,1,1,3,G,3,3,1,3,K,3,1,3,3,O,3,3,3,3,R,1,3,1 4250 DATA 3,S,1,1,1,3,U,1,1,3,3,W,1,3,3,4,B,3,1,1,1 4300 DATA 4,C,3,1,3,1,4,F,1,1,3,1,4,H,1,1,1,1,4,J,1,3,3,3 4350 DATA 4,L,1,3,1,1,4,P,1,3,3,1,4,Q,3,3,1,3,4,V,1,1,1,3 4400 DATA 4,X,3,1,1,3,4,Y,3,1,3,3,4,Z,3,3,1,1,5,1,1,3,3,3,3,5 4500 DATA 2,1,1,3,3,3,5,3,1,1,1,3,3,5,4,1,1,1,1,3,5,5,1,1,1,1,1 4600 DATA 5,6,3,1,1,1,1,5,7,3,3,1,1,1,5,8,3,3,3,1,1,5,9,3,3,3,3,1,5 4700 DATA 0,3,3,3,3,3,6,PERIOD,1,3,1,3,1,3,6,COMMA,3,3,1,1,3,3,6 4800 DATA?MARK,1,1,3,3,1,1,5,SLASH,3,1,1,3,1,8,GOOF,1,1,1,1,1,1,1,1,1," ",0 4900 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15 4910 PRINT"[147]";:IFER<>63THENEND 4920 LOAD"HELLO CONNECT",8 6000 : 6040 : 6080 : 6085 POKE53280,6:POKE53281,5:POKE646,0 6090 PRINT"[147] CW TRAINER MENU:" 6100 PRINT"CHOOSE FROM AN ITEM BELOW:" 6110 PRINT: REM FORI=1TO2500:NEXTI 6120 PRINT"1. PRACTICE ON LETTERS: A,E,I,M,N,T" 6140 PRINT"2. PRACTICE ON LETTERS: D,G,K,O,R" 6160 PRINT"3. PRACTICE ON LETTERS: B,S,U,W" 6180 PRINT"4. PRACTICE ON LETTERS: C,F,H,J" 6200 PRINT"5. PRACTICE ON LETTERS: L,P,Q,V" 6220 PRINT"6. PRACTICE ON LETTERS: X,Y,Z" 6240 PRINT"7. PRACTICE ON NUMBERS: 1 THROUGH 5" 6260 PRINT"8. PRACTICE ON NUMBERS: 6 THROUGH 0" 6280 PRINT"9. PRACTICE ON PUNCTUATION: PERIOD," 6290 PRINT"COMMA, ? MARK, SLASH, GOOF (ERROR)" 6300 PRINT"10. RANDOM PRACTICE ON ALL OF THE ABOVE" 6320 PRINT"11. QUIT FOR NOW (RETURN TO LOADSTAR)":PRINT 6340 INPUT"WHICH DO YOU WANT";SV$:SV=VAL(SV$) 6345 IFSV<1ORSV>11THENPRINT"[145]";:GOTO6340 6360 ONSVGOTO6400,6450,6500,6550,6600,6650,6700,6750,6800,6850,4900 6400 SW=1:SX=6:NR=6:GOSUB3500:GOTO400 6450 SW=7:SX=11:NR=5:GOSUB3500:GOTO400 6500 SW=12:SX=15:NR=4:GOSUB3500:GOTO400 6550 SW=16:SX=19:NR=4:GOSUB3500:GOTO400 6600 SW=20:SX=23:NR=4:GOSUB3500:GOTO400 6650 SW=24:SX=26:NR=3:GOSUB3500:GOTO400 6700 SW=27:SX=31:NR=5:GOSUB3500:GOTO400 6750 SW=32:SX=36:NR=5:GOSUB3500:GOTO400 6800 SW=37:SX=41:NR=5:GOSUB3500:GOTO400 6850 SW=1:SX=41:NR=41:GOSUB3500:GOTO400 60000 REM 60010 REM--SUBRUTINE TO INITIALIZE SCREEN AND START PROGRAM 60030 REM 61000 PRINT"[147]MORSE CODE TRAINING PROGRAM" 61020 PRINT"BY TERRY M. BROWN" 61060 PRINT"";SPC(25);"[144][162][162][162][162][162][162][162][162][162]" 61080 PRINTSPC(29);" [146]" 61100 PRINTSPC(12);"[169] [146]" 61120 PRINTSPC(8);"[187][172][146]  [146] [223][169]" 61140 PRINT"[168][168][168][168][168][168][168][168][144][190][188][146] [169] [223][146] [169][223][146]" 61160 PRINTSPC(7);" [146]" 61180 PRINT"[158]MORSE CODE KEY" 61200 GOSUB2800 61220 DATA 4,10,11,12,1,42,16,10,7,1,42,2,12,42,17,13,6 61240 NUMBER=17 61250 SPEED=7 61260 FORI=1TONUMBER 61280 READBB(I) 61300 NEXTI 61400 FOR L=54272TO54296:POKEL,0:NEXTL 61500 S=54272:POKES+5,15:POKES+24,15:POKES+6,40 61600 POKES+21,57:POKES+22,100:POKES+23,8 61650 PRINT"";SPC(10); 61700 PRINTTAB(15)"PRESS A KEY" 62700 POKE198,.:WAIT 198,1:POKE198,. 63000 RETURN